<!-- 关注医生的组件  -->

<script setup lang="ts">
import DoctorCard from './DoctorCard.vue'
import { getDoctorPage } from '@/services/consult'
import { useWindowSize } from '@vueuse/core'
import { ref } from 'vue'
import { onMounted } from 'vue'

import type { DoctorList } from '@/types/consult'

//  这个方法 可以很方便的帮我们获取到设备的宽度
const { width } = useWindowSize()
// 声明变量
//  函数的参数  axios 的 返回值
const list = ref<DoctorList>([])
onMounted(async () => {
  const res = await getDoctorPage({
    current: 1,
    pageSize: 15
  })
  console.log(res.data)
  list.value = res.data.rows
})
</script>

<!-- 轮播图的处理 -->

<template>
  <div class="follow-doctor">
    <div className="head">
      <p>推荐关注</p>
      <a href="javascript:;"> 查看更多<i class="van-icon van-icon-arrow" /></a>
    </div>
    <div class="body">
      {{ width }}
      <!-- swipe 组件 -->
      <!-- 150 就是从 375的设计图上面测量的  -->
      <!-- 150 要等比例缩放    375的设计图 卡片宽度是 150  -->
      <!-- 640的设计图    375/150 === 640/x     x= 150 * 当前的设备宽度/ 375 -->
      <!-- 500的设计图    375/150 === 500/x     x= 150 * 当前的设备宽度/ 375 -->
      <!-- posctCss 那个适配 只能适配style 或者css 里面的样式 行内的 不适配  :width="150"  postCss没办法 等比例 缩放    -->
      <!-- 所以我们自己手动 计算缩放  -->
      <!-- 150/375 = 0.4  -->
      <van-swipe :width="0.4 * width" :show-indicators="false" :loop="false">
        <!-- 默认情况下  一个swipe-item  宽度 就是 100%   -->
        <van-swipe-item v-for="item in list" :key="item.id">
          <DoctorCard :item="item"></DoctorCard>
        </van-swipe-item>
      </van-swipe>
    </div>
  </div>
</template>

<style lang="scss" scoped>
.follow-doctor {
  background-color: var(--cp-bg);
  height: 250px;

  .head {
    display: flex;
    justify-content: space-between;
    height: 45px;
    align-items: center;
    padding: 0 15px;
    font-size: 13px;

    >a {
      color: var(--cp-tip);
    }
  }

  .body {
    width: 100%;
    overflow: hidden;
  }
}
</style>
